Name bubble handling

ABSTRACT

Apparatus has at least one processor and at least one memory having computer-readable code stored therein which when executed controls the at least one processor: to determine a name relating to a face in an image; to calculate a first maximum length attribute for a name bubble for the face at a first zoom level; to select a part of the name for inclusion in the name bubble having regard to the first maximum length attribute; to calculate a second maximum length attribute for the name bubble for the face at a second zoom level, the first and second zoom levels being different and the first and second maximum length attributes being different; and to select a part of the name for inclusion in the name bubble for the face at the second zoom level having regard to the second maximum length attribute.

RELATED APPLICATION

This application was originally filed as Patent Cooperation TreatyApplication No. PCT/EP2012/073482 filed Nov. 23, 2012, which claimspriority benefit to United Kingdom Patent Application No. 1120373.4,filed Nov. 25, 2011, both of which the entireties are incorporatedherein by reference.

FIELD OF THE INVENTION

This invention relates to methods and apparatus for name bubblehandling.

BACKGROUND TO THE INVENTION

It is known for people in digital photographs to be “tagged”. A tagprovides a link between a part of a photograph and a person. Forinstance, social networking services are known to provide a facilitywhereby users can upload digital photos, for storage in a galleryassociated with the user's profile. Where these photographs includeimages of their friends, family and other contacts, these other peoplecan be tagged such that users of the social networking service canfollow links from the people that are tagged in the photograph to thephotograph itself.

Separately, it is known for photograph handling software applications tofeature facial recognition, by which faces within a photograph can beidentified and a guess taken as to the identity of the individual whomis imaged.

Pocket-sized mobile devices tend to include displays of relativelylimited size. Mobile telephones, smartphones and personal digitalassistants, for instance, tend to have a diagonal screen size of lessthan 5 inches (12.7 centimeters), and often less than 4 inches (10.16centimeters). To allow text to be sufficiently easily readable, it isusually displayed with a certain minimum text height. The display oftext overlaid on images can be to the detriment of the user experience,particularly on pocket-sized handheld devices. This can be amelioratedby reducing the size of text, although reducing text size can bedetrimental to user experience in a different way.

It is within this context that the present invention was made.

SUMMARY OF THE INVENTION

A first aspect of the invention provides apparatus, the apparatus havingat least one processor and at least one memory having computer-readablecode stored therein which when executed controls the at least oneprocessor:

-   -   to determine a name relating to a face in an image;    -   to calculate a first maximum length attribute for a name bubble        for the face at a first zoom level;    -   to select a part of the name for inclusion in the name bubble        having regard to the first maximum length attribute;    -   to calculate a second maximum length attribute for the name        bubble for the face at a second zoom level, the first and second        zoom levels being different and the first and second maximum        length attributes being different; and    -   to select a part of the name for inclusion in the name bubble        for the face at the second zoom level having regard to the        second maximum length attribute.

The name may comprise a family name component comprising one or morewhole words and a given name component comprising one or more wholewords and the computer-readable code when executed may control the atleast one processor to perform selecting a part of the name forinclusion in the name bubble comprises selecting the given namecomponent of the name for inclusion in the name bubble in response todetermining that the maximum length attribute for the name bubble at agiven zoom level is less than a length of the sum of the given namecomponent and the family name component of the name and is greater thanor equal to a length of the given name component of the name.

The computer-readable code when executed may control the at least oneprocessor to perform selecting a part of the name for inclusion in thename bubble comprises selecting initials of the name to the exclusion ofother components of the name for inclusion in the name bubble inresponse to determining that the maximum length attribute for the namebubble at a given zoom level is less than a length of the given namecomponent of the name.

The computer-readable code when executed may control the at least oneprocessor to perform selecting a part of the name for inclusion in thename bubble comprises selecting a whole of the name for inclusion in thename bubble in response to determining that the maximum length attributefor the name bubble at a given zoom level is greater than or equal to alength of the whole of the name.

The computer-readable code when executed may control the at least oneprocessor to perform setting a height of the name bubble at the sameheight for every zoom level for which a name bubble is provided.

The computer-readable code when executed may control the at least oneprocessor to perform refraining from providing a name bubble for theface when a current zoom level is a minimum zoom level.

The computer-readable code when executed may control the at least oneprocessor to perform calculating a maximum length attribute for a namebubble by determining a size parameter of the face at a given zoom leveland setting the maximum length attribute for that zoom level dependenton the determined size parameter.

The computer-readable code when executed may control the at least oneprocessor to perform determining a first name relating to the face byusing face recognition to identify a best match in a database of faces.The computer-readable code when executed may control the at least oneprocessor to perform responding to a user input selecting a name bubbleby providing an interface by which a user can confirm or set a name forthe face. Alternatively or in addition, the computer-readable code whenexecuted may control the at least one processor to perform setting avisual attribute for a name bubble relating to a name that is determinedby face recognition software to be a likely match to a first value andsetting the visual attribute for a name bubble relating to a name thatis confirmed or set by a user to a second value. Here, the visualattribute may be name bubble colour.

The computer-readable code when executed may control the at least oneprocessor to perform setting a location for the name bubble on the imagerelative to the face including enforcing a minimum separation betweenthe name bubble and screen elements that are not part of the image.

The computer-readable code when executed may control the at least oneprocessor to perform:

-   -   determining a second name relating to a second face in the        image;    -   calculating a first maximum length attribute for a second name        bubble for the second face at the first zoom level;    -   selecting a part of the second name for inclusion in the second        name bubble for the second face at the first zoom level having        regard to the first maximum length attribute for the second name        bubble;    -   calculating a second maximum length attribute for the second        name bubble for the second face at the second zoom level, the        first and second maximum length attributes for the second name        bubble being different; and    -   selecting a part of the second name for inclusion in the second        name bubble for the second face at the second zoom level having        regard to the second maximum length attribute for the second        name bubble.

The computer-readable code when executed may control the at least oneprocessor to perform causing display of the image with the selected partof the name in the name bubble.

The computer-readable code when executed may control the at least oneprocessor to perform causing display of the name bubble with a plainbackground.

A second aspect of the invention provides a computer-implemented methodcomprising:

-   -   determining a name relating to a face in an image;    -   calculating a first maximum length attribute for a name bubble        for the face at a first zoom level;    -   selecting a part of the name for inclusion in the name bubble        having regard to the first maximum length attribute;    -   calculating a second maximum length attribute for the name        bubble for the face at a second zoom level, the first and second        zoom levels being different and the first and second maximum        length attributes being different; and    -   selecting a part of the name for inclusion in the name bubble        for the face at the second zoom level having regard to the        second maximum length attribute.

A third aspect of the invention provides a computer program comprisinginstructions that when executed by computer apparatus control it toperform the method.

A fourth aspect of the invention provides apparatus comprising:

-   -   means for determining a name relating to a face in an image;    -   means for calculating a first maximum length attribute for a        name bubble for the face at a first zoom level;    -   means for selecting a part of the name for inclusion in the name        bubble having regard to the first maximum length attribute;    -   means for calculating a second maximum length attribute for the        name bubble for the face at a second zoom level, the first and        second zoom levels being different and the first and second        maximum length attributes being different; and    -   means for selecting a part of the name for inclusion in the name        bubble for the face at the second zoom level having regard to        the second maximum length attribute.

A fifth aspect of the invention provides a non-transitorycomputer-readable storage medium having stored thereon computer-readablecode, which, when executed by computing apparatus, causes the computingapparatus to perform a method comprising:

-   -   determining a name relating to a face in an image;    -   calculating a first maximum length attribute for a name bubble        for the face at a first zoom level;    -   selecting a part of the name for inclusion in the name bubble        having regard to the first maximum length attribute;    -   calculating a second maximum length attribute for the name        bubble for the face at a second zoom level, the first and second        zoom levels being different and the first and second maximum        length attributes being different; and    -   selecting a part of the name for inclusion in the name bubble        for the face at the second zoom level having regard to the        second maximum length attribute.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way ofexample only, with reference to the accompanying drawings, in which:

FIG. 1 is a perspective view of a mobile terminal embodying aspects ofthe invention;

FIG. 2 is a schematic diagram illustrating components of the FIG. 1mobile terminal and their interconnection;

FIG. 3 is a schematic diagram illustrating functional components of aname bubble creating/generating and displaying feature provides by theFIG. 1 mobile terminal;

FIG. 4 is a flow diagram indicating the main functional steps performedduring name bubble generation/creation and display; and

FIGS. 5 a to 5 e are screenshots provided by the mobile device of FIGS.1 and 2 at different points in the operation of the flowchart of FIG. 4.

DETAILED DESCRIPTION OF EMBODIMENTS

Embodiments of the invention can be said to provide dynamic namebubbles. The name bubbles are dynamic in that their size is determinedhaving regard to a size of a face with which they are to be displayed,and that the size of the face is dependent on a zoom level. As such, thesize of the name bubble can be said to be appropriate having regard tothe proportion of the display that is occupied by the associated face. Asmaller face is related to a smaller name bubble, and a larger face isrelated to a larger name bubble. Moreover, the selection of the whole orpart of the name having regard to the maximum name bubble length meansthat the user is provided with information that is useful to allow themto determine the name of the contact that is known or thought to beknown by the terminal as the name for the face that is included in theimage. Advantageously, this is achieved without the need to use a fontsize that is smaller than a font size that has been deemed to beappropriate, either as a default font size or as a font size that hasbeen set by a user.

Below-described rules for the selection of a part of a name forincluding in a name bubble are considered to be optimal in indicating toa user of the terminal a known or assumed name of a contact when itwould be detrimental to the user experience to display the whole of thename of the contact. Put concisely, features of the embodiments of theinvention cooperate to provide information that is likely to be ofinterest to a user but without negatively impacting viewing of images ina significant way.

Referring firstly to FIG. 1, a terminal 100 is shown. The exterior ofthe terminal 100 has a touch sensitive display 102, hardware keys 104, arear-facing camera 105, a speaker 118 and a headphone port 120. Theterminal 100 here is a mono-body touchscreen smartphone, of which theNokia N9™ is an example.

FIG. 2 is a schematic diagram of the components of the terminal 100. Theterminal 100 has a controller 106. The terminal 100 also has a display102. The display 102 is a touch sensitive display 102 comprised of adisplay part 108 and a tactile interface part 110. The terminal 100 hashardware keys 104, The terminal 100 has a camera 105. The terminal 100has a memory 112. The terminal 100 has RAM 114. The terminal 100 has aspeaker 118. The terminal 100 has a headphone port 120. The terminal 100has a wireless communication module 122. The terminal 100 has an antenna124, The terminal 100 has a battery 116. The controller 106 is connectedto each of the other components (except the battery 116) in order tocontrol operation thereof.

The memory 112 may be a non-volatile memory such as read only memory(ROM) a hard disk drive (HDD) or a solid state drive (SSD). The memory112 stores an operating system 126. The operating system 126 includes akernel and plural modules (not shown). The operating system for instancebe the Symbian™ operating system provided by the Symbian Foundation orthe Windows Phone™ operating system provided by Microsoft Corporation.The memory 112 also stores one or more software applications 128. TheRAM 114 is used by the controller 106 for the temporary storage of data.The operating system 126 may contain code which, when executed by thecontroller 106 in conjunction with RAM 114, controls operation of eachof the hardware components of the terminal. The RAM 114 and the memory112 may be separate memories or they may be different parts of the samememory.

The controller 106 may take any suitable form. For instance, it may beprocessing means comprising a microcontroller, plural microcontrollers,a single-core processor, plural processors or a multi-core processorsuch as a dual-core processor or a quad-core processor.

The terminal 100 may be a mobile telephone or smartphone, a personaldigital assistant (PDA), a portable media player (PMP), a portablecomputer or any other device capable of running software applicationsand providing display outputs. The terminal 100 may engage in cellularcommunications using the wireless communications module 122 and theantenna 124. The wireless communications module 122 may be configured tocommunicate via several protocols such as GSM, CDMA, UMTS, Bluetooth andIEEE 802.11 (Wi-Fi).

The display part 108 of the touch sensitive display 102 is configured todisplay images and text to users of the terminal based on instructionsprovided by the controller 106. The tactile interface part 110 is forreceiving touch inputs from users and for indicating to the controller106 what inputs have been received.

As well as storing the operating system 126 and software applications128, the memory 112 may also store media files such as photographs,other digital images, music and video files. A wide variety of softwareapplications 128 may be installed on the terminal including webbrowsers, radio and music players, games and utility applications.

Some or all of the software applications stored on the terminal mayprovide audio outputs. The audio provided by the applications may beconverted into sound by the speaker(s) 118 of the terminal. Ifheadphones or speakers have been connected to the headphone port 120,sound may be converted by the headphones or speakers connected to theheadphone port 120.

In some embodiments the terminal 100 may also be associated withexternal software applications not stored on the terminal. These may beapplications stored on a remote server device and may run partly orexclusively on the remote server device. These applications can betermed cloud-hosted applications. The terminal 100 may be incommunication with the remote server device in order to utilise thesoftware applications stored there.

The hardware keys 104 may include a camera operation key. The cameraoperation key may trigger the capture of photographs using the camera105. The camera operation key may also cause a camera application, beingone of the software applications 128, to be opened or executed. In thisway, a user can prepare the device 100 to capture photographs or videosimply by activating the camera operation key. Activation of the cameraapplication may require a long press or hold of the camera operationkey. The camera operation key may be configured to focus the camera 105when the key is held by the user half-depressed.

In some embodiments, the hardware keys 104 include dedicated volumecontrol keys or switches. The hardware keys may for example comprise twoadjacent keys, a single rocker switch or a rotary dial. The hardwarekeys 104 may be located on the side of the terminal 100.

Briefly, the terminal 100 displays name bubbles indicating the names ofpeople present in displayed images.

Referring to FIG. 3, there are shown various software modules which arestored on the memory 112 and together provide for displaying namebubbles on images. Each will be briefly described.

A photo viewer application 130 enables the user to open and organisephotos and other digital images stored in the memory 112. Digital imagesmay be sourced in any suitable way. Digital images may be captured bythe camera 105. Alternatively, they may be received as image files, forinstance as an attachment or embedded within a message such as an email,an instant message, a multimedia message service (MMS) message or amessage provided through a social network service provider such asFacebook or LinkedIn. Images may instead be hosted remotely. Forinstance, images may be photos that are held within a user's gallery ona service such as Ovi, Facebook or Flickr.

A face detection module 131 operates in conjunction with the photoviewer 130 to automatically detect faces within images, includingphotographs, when opened for viewing. A face tagging module 132 providesmetadata for each detected face. This process is generally known astagging, with metadata being referred to as a tag. When certainconditions are present, the face tagging module 132 prompts the user toidentify a person associated with the face. Identifying the person mayinclude identifying a record in a contact list 133. It may alternativelyor additionally involve the user providing a name for the person and/ora social network presence for the person.

Optionally, the face detection module 131 can identify correlationsbetween photos and suggest tag information to be applied to untaggedphotos.

The contact list 133 is a database of information relating to contacts.The contact list 133 may be referred to as an address book. The contactlist 133 may include any tag data entered by the user. This can include,in addition to the metadata, a reference to the associated image and thedetected face rectangles. The contact list 133 also includes details ofany social networks with which contacts may be registered and thecontacts' usernames for the social networks. The terminal 100 thereforemaintains a locally-stored list of contacts which identifies contactnames, images the contacts are shown in, and their social networkpresence and identities.

The social network communications interface 134 (hereafter “interface”)is configured to communicate with one or more external social networkapplications in which the user of the terminal 100 has a presence. Forthis purpose, the interface 134 stores username and password informationfor the user enabling automatic logging-in to the or each social networkapplication. Data communications takes place in any suitable manner,e.g. using Wi-Fi, 3G, GPRS and so on. The social network communicationsinterface 134 may utilise APIs for the social network services withwhich communication is made.

A method of operation of the device 100 will now be described withreference to the flow chart of FIG. 4. The steps of this figure areperformed by the one or more software applications 128, and some stepsare performed by ones of the modules shown in FIG. 3.

The operation of FIG. 4 will be described with some reference to FIGS. 5a to 5 e, and afterwards FIGS. 5 a to 5 e will be described withreference to FIG. 4.

The operation starts with a photo, for instance the photo shown in thescreenshot 200 of FIG. 5 a. The photo includes at least one face, and inthe example shown in FIG. 5 a there are two faces present in the photo.

At step S1, a face is detected. This may be performed in any suitableway. The detected face may be identified in any suitable manner. Forinstance, an oval shape may be placed over the outline of the face. Theoval shape has a length and a width dimension. Typically the lengthdimension is vertical in the image, for a person whose face is upright,although it may detect some other orientation.

At step S2, the face detection module 131 determines the contact whoseface was detected in step S1. Step S2 also involves determining thecontact's name. This is achieved using the contact list 133. Face S2involves facial recognition, and can be achieved in any suitable way.

At step S3, a zoom level is detected. The zoom level indicates a levelat which a user of the device 100 has zoomed the image that is beingprocessed. In this illustration, a zoom level can take a value between1, indicating a full image, to 20, indicating a 20× zoom, although thisis merely an example. Determination of the zoom level in step S3 isperformed by detecting a parameter of the photo viewer application ormodule 130.

At step S4, a face size attribute is determined. The face size attributeis an indication of the size of the face in the image. The face sizeattribute may for instance be the sum or average of the length and widthof the oval shape that was generated to coincide with the outline of theface. The attribute may instead be the height of the face, which isprovided by the height of the oval.

Ovals are shown at 201 and 202 in the screenshot 200 of FIG. 5 a. Inthis example, it can be seen that, although the heights of the faces areapproximately equal, the oval of the male face shown at 201 is widerthan the oval of the female face shown at 202, because the female faceis relatively oblique compared to the male face, which is relativelyface-on.

At step S5, a maximum bubble length is determined. The maximum bubblelength is a maximum length for a name bubble that is to be displayed inconnection with the face that is being processed. The length here is thedimension in the horizontal direction. As is described below, themaximum bubble length is used to determine what name or part of a nameof the contact relating to the face is included in the name bubble. Themaximum bubble length is determined having regard to the face sizeattribute determined in step S4. In particular, the maximum bubblelength is a function of the face size attribute. The function may be alinear function or it may be more complicated. For instance, the maximumbubble length may be set as a multiple of (for instance one eighth of)the average of the height and width measurements of the oval relating tothe face. It may alternatively be set as a multiple of (for instance onehalf of) the square of the average of the height and width measurementsof the oval relating to the face. Other suitable functions will beapparent to the skilled person.

The maximum bubble length determined at step S5 is dependent on the zoomlevel detected at step S3. This may be achieved in one of two main ways.In one alternative, the maximum bubble length is calculated as afunction also of zoom level, with the face size attribute being anabsolute attribute, for instance measured in terms of pixels of theoriginal image. Alternatively, the face size attribute is dependent onthe zoom level, for instance as measured in number of pixels fordisplay, rather than number of pixels in the original image. In thisalternative, the maximum bubble length is calculated having regard tothe face size attribute but without having regard to the zoom level,because the zoom level is already accommodated in the determination ofthe face size attribute.

Following determination of the maximum bubble length at step S5, a partof the name of the contact whose face is being processed is selected forinclusion in the name bubble. Step S6 involves a number of sub-steps, asfollows.

Firstly, at step S6.1, it is determined whether the full name of thecontact would fit within a name bubble having the maximum bubble lengthdetermined at step S5. This step is performed by determining a text sizeat which the name is to be provided within the name bubble anddetermining whether the full name of the contact at that text size has alength that is less than or equal to the maximum bubble length. StepS6.1 takes into account the particular font in which the name is to beprovided in the name bubble, the particular letter combinations withinthe name and the spaces that may be provided between different words ofthe name. Except in the case of using a font with regular characterwidth, such as courier, the length of the name will typically not be asimple function of the number of characters in the name.

If it is determined at step S6.1 that the full name would fit within thename bubble, at step S6.2 the full name of the contact is selected. Inthe event of a negative determination at step S6.1, at step S6.3 it isdetermined whether the first name or names of the contact would fitwithin the name bubble. This involves separating out the first name orfirst names of the full or whole name of the contact from the familyname or names for the contact, which may be performed in any suitableway. Typically, first names are included in different fields to familynames in records included in the contact list 133, and in this case stepS6.3 involves determining the first name or names from the relevantfield of the relevant record of the contact list 133. If all of thenames of a contact are included in a single field within the contactlist 133, then step S6.3 involves (quasi-)intelligently determiningwhich of multiple words of the name are the first name or names. Thiscan be performed in any suitable way, for instance by detecting hyphensin between words of the name and grouping words that are separated by ahyphen in the same part, for instance, first name part of family namepart, of the name.

If step S6.3 shows that the first name or names would fit within thename bubble, the first name or names is or are selected at step S6.4. Inthe event of step S6.3 revealing that the first name or names would notfit within the name bubble, at step S6.5 the initials of the name areselected.

Following step S6, the bubble colour is set at step S7. Step S7 alsoinvolves setting the location of the name bubble.

The colour of the name bubble is set based on a determination as towhether the contact's name has or has not been confirmed by the user ofthe terminal 100. In these examples, a light, e.g. white, colour isselected for names for contacts that have not been confirmed by theuser. A dark colour, for instance black, is selected for bubbles forwhich the name has been confirmed by the user of the terminal 100.Bubble location may be set in any suitable way. For instance, the bubblelocation may be set at a default location, and may be moved only if itis determined to be appropriate to move the name bubble. For instance,the default location could be the uppermost end or part of the oval thatoverlays the user's face. In this way, the display of the name bubble onthe image does not obscure the key features of the contact's face,particularly the mouth, nose and eyes. It can be determined that thislocation is not appropriate if, for instance, the display of the namebubble at that location would result in some or all of it overlappingwith an edge of the image or overlapping with a screen element that isprovided along with or overlaying the image. When it is detected thatthe default location is not appropriate, the name bubble is set to thenearest location that would not overlap with an edge of the image or ascreen element. Moving the location may comprise a move to a locationwhere there would not be any overlap with an edge of the image or anyscreen elements. Setting the location of the name bubble in step S7 mayinvolve ensuring a minimum separation between the name bubble and anedge of the image or screen elements. The minimum separation may besmall, for instance approximately one tenth of a height of the namebubble.

At step S8, the selected name text is displayed in a name bubble that isoverlaid onto the image. For instance, as shown in FIG. 5 b, a namebubble 203 is shown overlaid on the oval 201 corresponding to the maleface in the image. Also, a second name bubble 204 is shown in relationto the oval 202 relating to the face of the female contact shown in theimage. Step S8 involves displaying the name bubble with a predeterminedheight. In this example, the height of the bubble is the same regardlessof all other parameters. The length of the name bubble is set to theminimum length that accommodates the name or part of the name that wasselected at step S6 to be included in the name bubble. The length of thename bubble may be less than the maximum bubble length determined instep S5. Unless the length of the name or the part of the name that wasselected at step S6 is exactly equal to the maximum bubble lengthdetermined at step S5, the length of the name bubble displayed in stepS8 will be less than the maximum bubble length determined in step S5.

At step S9, it is determined whether there is another face in the imageto be processed. In the event of a positive determination, the operationproceeds again to step S1, where the second face is detected. Steps S2to S8 are then performed for the second face.

If at step S9 it is determined that there are no further faces to beprocessed within the image, it is determined at step S10 whether thezoom level has changed. If the zoom level has changed, the operationproceeds again to step S3, where the new zoom level is detected, and theoperation proceeds as described above. If it is detected at step S10that the zoom level has not changed, the operation proceeds to step S11.Here, it is determined whether it is required to exit the operation. Inthe event of a negative determination, the operation proceeds again tostep S10, where it is determined whether the zoom level has changed. Ifat any performance of step S11 it is determined that it is required toexit, the operation is exited at step S12.

Having regard to the above, it will be appreciated that the maximumbubble length varies depending on the zoom level. Since the part of thename that is selected to be displayed in the name bubble is dependent onthe maximum bubble length, the part of the name that is displayed isdependent also on the zoom level. This will now be explained in moredetail with reference to FIGS. 5 a to 5 e.

FIGS. 5 a to 5 e are screenshots representing different stages ofoperation of the terminal 100.

In the screenshot 200 of FIG. 5 a, an image is displayed. The imageoccupies the whole of the display 102.

FIG. 5 a shows that a male face has been detected and the outline of theface is shown by the oval at 201. Additionally, a female face has beendetected and is shown by an oval at 202.

FIG. 5 b shows a screenshot 207 that is provided by the terminal 100.This screenshot 207 of FIG. 5 b is provided for instance when a userinput, for instance a short press, is received when the screenshot 200of FIG. 5 a is shown. In the screenshot 207 of FIG. 5 b, the image fromFIG. 5 a is the same, although there are some screen elements that areoverlaid thereon. In particular, a first name bubble 203 is overlaid onthe male face that is defined by the oval 201. A second name bubble 204is overlaid onto the female face that is represented by the oval 202.Additionally, a toolbar 206 is shown at the bottom of the screenshot207.

The toolbar 206 extends across the width of the display 102. The toolbar206 extends a small height from the bottom of the screenshot 207. Thetoolbar includes a number of icons. Each icon can be selected by a userof the terminal 100 to cause performance of a different function. In theexample shown in screenshot 207, one icon indicates a back function. Asecond icon indicates a share function. A third icon indicates afavourites function. A fourth icon indicates a delete function. Lastly,a fifth icon indicates a list function, selection of which would open alist of selectable menu commands (insert face, slide show, edit, save asetc.)

The screenshot 207 also includes an information bar 205. The informationbar 205 is provided at the top of the display 102 in the screenshot 207.The information bar 205 extends across the width of the display 102 andscreenshot 207. The information bar 205 includes information about theimage that is being displayed. Here, the information may include thefile name. If the image is not stored locally but instead is storedremotely, the information bar 205 may include an indication of thelocation of the content, for instance a uniform resource locator (URL)or uniform resource indicator (URI). The information bar 205 may alsoinclude geo data, for instance a location corresponding to the image. Inthe case of a photograph, the geo data may indicate a location at whichthe photograph was captured. The information bar 205 also includes timedata. For instance, the information bar 205 may include a time and date.In the case of a photograph, this may indicate the time and date atwhich the photograph was captured.

In providing the first name bubble 203, the terminal 100 performs theoperation of FIG. 4. In doing so, the contact and the name of thecontact was determined at step S2 as likely relating to a person withthe name Brad van Houten. At step S3, no zooming was detected to bepresent, so a full size image was detected. At step S4, a face sizeattribute was detected for the oval 201 for the face of the contact Bradvan Houten. Here, the face size is relatively large compared to the face202 of the female contact within the image. The face size attributedetermined at step S4 may for instance be 70 (with no units).

At step S5, the maximum bubble length was determined having regard tothe face size attribute determined in step S4. For instance, the maximumbubble length was determined as 70 pixels. At step S6, a part of thename of the contact Brad van Houten was selected for display in the namebubble. In this case, step S6.1 involved determining a number of pixelsthat would have been required to display the whole of the name Brad vanHouten. In this example, 152 pixels are required to display the nameBrad van Houten in the font and the font size that are required to beused for displaying the name in the name bubble 203. As such, step S6.1determined that the full name of the contact would not fit within thename bubble having a maximum bubble length of 70 pixels.

At step S6.3, it was calculated that to display the first name of thecontact, namely Brad, would require a name bubble of length 61 pixels.This was then determined to be less than the maximum bubble length of 70pixels that was determined in step S5. As such, step S6.3 led to thefirst name of the contact, Brad, being selected at step S6.4.

At step S7, the bubble colour was selected as white on the basis thatstep S2 involved determining the contact using facial recognition and assuch confirmation by the user is required before it could be determinedthat the name of the contact was confirmed by the user of the terminal100 as relating to the face included in the image.

Step S7 also involved determining that the default location for the namebubble 203 was not appropriate. This determination was made on the basisthat the default location for the name bubble overlapped with theinformation bar 205 and also the edge of the image. As such, step S7involved determining a location for the name bubble that is directlybelow the default location and separated from the lowermost edge of theinformation bar 205 by the minimum separation.

At step S8, the selected name text, here the first name Brad, was thendisplayed in the name bubble 203 at the location and with the bubblecolour determined in step S7.

At step S9, it is determined that there is another face to be processed,this time the female face that is provided with the oval at 202. Assuch, the operation returns to step S1, where the face 202 is detected.At step S2, the contact and the name of the contact is determined, inthe same was as described above in relation to Brad van Houten. In thiscase, the female face is identified as Amy Kang. Steps S3 to S5 are asdescribed above with reference to Brad van Houten. However, because theoval of the face 202 for Amy Kang is smaller than the oval of the face201 for Brad van Houten, the maximum bubble length determined in step S5is less than the maximum bubble length determined for Brad van Houten.In particular, the maximum bubble length is set at 46 pixels, based on aface size attribute determination at step S4 of 46.

At step S6.1, it is determined that the full name of Amy Kang requires122 pixels, and determines that this is greater than the maximum bubblelength. As such, the operation proceeds to step S6.3, where it isdetermined whether Amy Kang's first name would fit within the namebubble. Here, it is determined that the name Amy requires 48 pixels.Since this is greater than the maximum bubble length determined at stepS5, the operation proceeds to step S6.5. Here, Amy Kang's initials areselected for inclusion within the name bubble.

At step S7, the bubble colour and location are set. Here, it isdetermined that the default position for the name bubble, namely at thetop of the oval defining the face 202, is an appropriate location forthe name bubble, because it would not overlap with any screen elements.The bubble colour is set to white because the name for Amy Kang wasderived by facial recognition and has not been confirmed by the user ofthe terminal 100.

At step S8, the selected name text of the contact's initials, AK, aredisplayed in the name bubble. The length of the name bubble isappropriate to the length of Amy Kang's initials, and in this case isless than the maximum bubble length.

FIG. 5 c shows a screenshot 208. This screenshot follows the screenshot207 of FIG. 5 b, and is provided after the user of terminal 100 hasentered a “zoom” input. A zoom input may be provided by a user forinstance using a pinch gesture, using one of the hardware keys 104,manipulating a slider (not shown) presented on the user interface, or inany other suitable way.

On detecting the change in zoom level at step S10, the flow chartproceeds to step S3. The processing is the same as described above withreference to FIG. 5 b. However, the zoom level is greater, for instanceis 1.2× or 1.3×, and as such the zoom level detected at step S3 isgreater. Because the faces 201 and 202 are larger in the screenshot 208of FIG. 5 c than they are in the screenshot 207 of FIG. 5 b, the facesize attribute determined at step S4 is larger for each of the faces. Inthis example, the face size attribute determined for Brad van Houten is170 and the face size attribute determined for Amy Kang is 143. As such,the maximum bubble length determined for Brad van Houten at step S5 is170 pixels. Also, the maximum bubble length determined for Amy Kang atstep S5 is 143 pixels.

Since the maximum bubble length for Brad van Houten is greater than thelength needed to display the whole of his name, the first name bubble203 includes the full name of Brad van Houten. Similarly, because themaximum bubble length for Amy Kang is greater than the number of pixelsneeded to display her whole name, the whole of her name is selected atstep S6.2 and is displayed in the second name bubble 204.

The bubble colours set in step S7 are the same as described above inrelation to FIG. 5 b. The location of the first name bubble 203 for Bradvan Houten is slightly different, and is set to the minimum spacing fromthe information bar 205 and is centred directly below the centre of thetop of the oval 201 for his face.

FIGS. 5 d and 5 e illustrate another aspect of operation of the terminal100, not all of which is illustrated by the flow chart of FIG. 4. Inparticular, FIG. 5 d illustrates how a user can confirm or change a nameprovided for a contact in a name bubble.

FIG. 5 d includes a screenshot 209 illustrating a screen that isprovided following a user input to the screenshot 208 of FIG. 5 c at thelocation of the second name bubble 204, for Amy Kang. The screenshot 209that is provided by the terminal 100 includes a number of components.These include firstly a cropped picture of the head of the personsurrounding the second face 202. It also includes a number of areas thatmay be selected by a user. A first one of these is a field or icon 211that includes text indicating the name that was determined at step S2 ofFIG. 4, in this case Amy Kang. Also provided is an icon 212, whichprovides access to the contacts list 133. This icon 212 is adjacent thename field or icon 211. The user of the terminal 100 can thus confirmthat the face is that of Amy Kang or can choose an alternative contactto associate with the face. In response to detecting a user input at thename field 211, the terminal 100 stores data indicating that the userhas confirmed this face to be Amy Kang. It may also update facedetection information in the face detection module 131. In response todetecting a user input at the contact list icon 212, the terminal 100presents a graphical user interface for the contact list. This allowsthe user to select the correct contact for the face 202. On receipt ofconfirmation of a different contact, the terminal 100 stores dataindicating that the face 202 is that of the contact input by the user.The face detection module 131 may also use this information to updateits face detection records.

An icon labelled “save” is provide at the uppermost portion of thescreen 209. In response to detecting user input on the “save” icon 213,the terminal 100 acts in the same way as described above with referenceto receiving user input at the name field/icon 211.

The screenshot 209 also includes a “cancel” icon 214 at the uppermostpart of the screen. In response to detecting a user input at the“cancel” icon 214, the terminal 100 acts to revert to the previousdisplay, in this case to provide the screenshot at 208 of FIG. 5 c.

The screenshot 209 includes towards the lower part of the screen a“remove face” icon 215. In response to detecting a user input at the“remove face” icon 215, the terminal 100 acts by untagging the face 202.In this case, the name bubble 204 is removed, preventing tagging of theface 202.

In response to detecting a user input at either the “name” icon 211 orthe “save” icon 213, the terminal 100 provides a screenshot 220 as shownin FIG. 5 e. Here, the screenshot 220 is the same as the screenshot 208of FIG. 5 c except that the second name bubble for Amy Kang has a darkcolour. This allows a user of the terminal 100 to determine that thename for the contact having the face 202 has been confirmed, and allowsthe user to distinguish between names that have been confirmed and namesthat have not been confirmed.

Numerous alternative embodiments will be apparent to the skilled person,and all such embodiments that fall within the scope of the claims arewithin the scope of this invention. Some alternative embodiments willnow be descried.

Although in the above name bubbles are provided for the faces as shownin FIG. 5 b in response to a user input from the screenshot shown inFIG. 5 a, alternatives are expressly envisaged. In some alternatives,name bubbles for faces are provided only when some zooming occurs. Assuch, name bubbles are not provided at full image size, but name bubblesare provided as soon as any zooming input is received from a user. Inother embodiments, name bubbles are provided at any zoom level even ifno user input is received. In such embodiments, name bubbles would haveappeared in the screenshot 200 of FIG. 5 a.

In the above-described embodiments, the height of the name bubble andthe font size for the text included in the name bubbles is the same atevery zoom level for which a name bubble is provided. In otherembodiments, the font size may vary between different zoom levels. Insome embodiments, the height of the name bubble may vary betweendifferent zoom levels.

In the above, name bubbles for names that have not been confirmed byusers are provided with a white background. Another indication that thename has not been confirmed by the user is provided by the inclusion ofa question mark character “?” at the end of the name or part of thename. In other embodiments, this may be omitted. If the question markcharacter is included, the length of the name that is determined in stepS6.1 and the length of the first name that is determined in step S6.3may include also an allowance for the inclusion of the question markcharacter. In these embodiments, the name displayed in a name bubble ata given zoom level may differ depending on whether the name has beenconfirmed by a user of the terminal. If, for instance, the length of aname is such that it is only slightly smaller than the maximum bubblelength at a given zoom level, the full name may be displayed in the namebubble when the name has been confirmed but if the name has not beenconfirmed the requirement to include a question mark at the end of thename may mean that only the user's first name is included in the namebubble.

Although in the above the screenshots are described as being provided onthe display 102, this is just an example. The screenshots may instead beprojected by a projector (not shown) forming part of the terminal 100 orprovided as part of a peripheral device to the terminal 100. With theuse of such projection, the display 102 may be temporarily disabled, orimages may be provided on the display 102 and be projectedsimultaneously.

Although in the embodiment described with reference to FIGS. 5 a to 5 eit is a bubble background colour that indicates whether or not a namehas been confirmed or set by a user, this is just an example. In otherembodiments, different patterns or textures may be provided. Forinstance, unconfirmed names may be indicated by hatched, dotted orcross-hatched backgrounds and confirmed names may be indicated by plainbackgrounds to the name bubbles. Alternatively, confirmed and/orunconfirmed names may be indicated by the use of dynamic, in the senseof changing over time, name bubbles. For instance, unconfirmed names mayvary in intensity, for instance pulsing brighter then darker thenbrighter again, whilst confirmed names are provided in static namebubbles. Alternatively, the converse notation may be used to indicateconfirmed and unconfirmed names.

In still other embodiments, the name bubbles are not provided withbackgrounds that are different to the background image. For instance,the name bubbles may be wholly or partly transparent, such that the nameprovided in the name bubble is superimposed on the image but theboundary of the name bubble is not visible or is only partly visible.

Where the name bubbles have visible or partly visible edges, their shapemay take any suitable form. They may have straight sides and roundedcorners, as illustrated in FIGS. 5 b, 5 c and 5 e. Alternatively, theymay have sharp corners or they may be fully rounded at the left andright ends, i.e. be provided without straight vertical lines.

It will be appreciated that the above described embodiments are purelyillustrative and are not limiting on the scope of the invention. Othervariations and modifications will be apparent to persons skilled in theart upon reading the present application.

For instance, although the above relates to an image such as aphotograph, the features in other embodiments are applied to a videothumbnail or to a frame of video.

Moreover, the disclosure of the present application should be understoodto include any novel features or any novel combination of featureseither explicitly or implicitly disclosed herein or any generalizationthereof and during the prosecution of the present application or of anyapplication derived therefrom, new claims may be formulated to cover anysuch features and/or combination of such features.

Advantages experienced by features of the embodiments of the inventionare particularly pronounced when the invention is implemented on apocket-sized device such as a smart phone, although the principles maybe applied to larger devices such a tablet computers, laptop computers,desktop computers and suchlike. In a device with a large display, forinstance, the advantages described above may be welcome where faces arerelatively small in a digital photograph. For instance, in a photographthat relates to tens of people, such as for instance a school or collegeclass or year, only a relatively small area may relate to a face of agiven individual. As such, the dynamic name bubble features describedabove can provide viewers of the image with useful information withoutthe name bubbles occupying too much of the area of the photograph,whilst allowing a readable font size.

The invention claimed is:
 1. An apparatus comprising at least oneprocessor and at least one memory having computer-readable code storedtherein which when executed controls the at least one processor to:determine a name relating to a face in an image; calculate a firstmaximum length attribute for a name bubble for the face at a first zoomlevel; select a part of the name for inclusion in the name bubble havingregard to the first maximum length attribute; calculate a second maximumlength attribute for the name bubble for the face at a second zoomlevel, the first and second zoom levels being different and the firstand second maximum length attributes being different; select a part ofthe name for inclusion in the name bubble for the face at the secondzoom level having regard to the second maximum length attribute; andcause display of the image with the selected part of the name in thename bubble.
 2. Apparatus as claimed in claim 1, wherein the namecomprises a family name component comprising one or more whole words anda given name component comprising one or more whole words and whereinthe computer-readable code when executed controls the at least oneprocessor to select a part of the name for inclusion in the name bubbleby selecting the given name component of the name for inclusion in thename bubble in response to determining that the maximum length attributefor the name bubble at a given zoom level is less than a length of thesum of the given name component and the family name component of thename and is greater than or equal to a length of the given namecomponent of the name.
 3. Apparatus as claimed in claim 1, wherein thecomputer-readable code when executed controls the at least one processorto select a part of the name for inclusion in the name bubble byselecting initials of the name to the exclusion of other components ofthe name for inclusion in the name bubble in response to determiningthat the maximum length attribute for the name bubble at a given zoomlevel is less than a length of the given name component of the name. 4.Apparatus as claimed in claim 1, wherein the computer-readable code whenexecuted controls the at least one processor to select a part of thename for inclusion in the name bubble by selecting a whole of the namefor inclusion in the name bubble in response to determining that themaximum length attribute for the name bubble at a given zoom level isgreater than or equal to a length of the whole of the name.
 5. Apparatusas claimed in claim 1, wherein the computer-readable code when executedcontrols the at least one processor to calculate a maximum lengthattribute for a name bubble by determining a size parameter of the faceat a given zoom level and setting the maximum length attribute for thatzoom level dependent on the determined size parameter.
 6. Apparatus asclaimed in claim 1, wherein the computer-readable code when executedcontrols the at least one processor to determine a first name relatingto the face by using face recognition to identify a best match in adatabase of faces.
 7. Apparatus as claimed in claim 6, wherein thecomputer-readable code when executed controls the at least one processorto respond to a user input selecting a name bubble by providing aninterface by which a user can confirm or set a name for the face. 8.Apparatus as claimed in claim 6, wherein the computer-readable code whenexecuted controls the at least one processor to set a visual attributefor a name bubble relating to a name that is determined by facerecognition software to be a likely match to a first value and set thevisual attribute for a name bubble relating to a name that is confirmedor set by a user to a second value.
 9. Apparatus as claimed in claim 8,wherein the visual attribute is name bubble colour.
 10. A methodcomprising: determining a name relating to a face in an image;calculating a first maximum length attribute for a name bubble for theface at a first zoom level; selecting a part of the name for inclusionin the name bubble having regard to the first maximum length attribute;calculating a second maximum length attribute for the name bubble forthe face at a second zoom level, the first and second zoom levels beingdifferent and the first and second maximum length attributes beingdifferent; selecting a part of the name for inclusion in the name bubblefor the face at the second zoom level having regard to the secondmaximum length attribute; and displaying the image with the selectedpart of the name in the name bubble.
 11. A method as claimed in claim10, wherein the name comprises a family name component comprising one ormore whole words and a given name component comprising one or more wholewords and wherein selecting a part of the name for inclusion in the namebubble comprises selecting the given name component of the name forinclusion in the name bubble in response to determining that the maximumlength attribute for the name bubble at a given zoom level is less thana length of the sum of the given name component and the family namecomponent of the name and is greater than or equal to a length of thegiven name component of the name.
 12. A method as claimed in claim 10,wherein selecting a part of the name for inclusion in the name bubblecomprises selecting initials of the name to the exclusion of othercomponents of the name for inclusion in the name bubble in response todetermining that the maximum length attribute for the name bubble at agiven zoom level is less than a length of the given name component ofthe name.
 13. A method as claimed in claim 10, wherein selecting a partof the name for inclusion in the name bubble comprises selecting a wholeof the name for inclusion in the name bubble in response to determiningthat the maximum length attribute for the name bubble at a given zoomlevel is greater than or equal to a length of the whole of the name. 14.A method as claimed in claim 10, wherein calculating a maximum lengthattribute for a name bubble comprises determining a size parameter ofthe face at a given zoom level and setting the maximum length attributefor that zoom level dependent on the determined size parameter.
 15. Amethod as claimed in claim 10, wherein determining a first name relatingto the face comprises using face recognition to identify a best match ina database of faces.
 16. A method as claimed in claim 15, comprisingresponding to a user input selecting a name bubble by providing aninterface by which a user can confirm or set a name for the face.
 17. Amethod as claimed in claim 15, comprising setting a visual attribute fora name bubble relating to a name that is determined by face recognitionsoftware to be a likely match to a first value and setting the visualattribute for a name bubble relating to a name that is confirmed or setby a user to a second value.
 18. A method as claimed in claim 17,wherein the visual attribute is name bubble colour.
 19. A non-transitorycomputer-readable storage medium having stored thereon computer-readablecode, which, when executed by a computing apparatus, causes thecomputing apparatus to perform: determining a name relating to a face inan image; calculating a first maximum length attribute for a name bubblefor the face at a first zoom level; selecting a part of the name forinclusion in the name bubble having regard to the first maximum lengthattribute; calculating a second maximum length attribute for the namebubble for the face at a second zoom level, the first and second zoomlevels being different and the first and second maximum lengthattributes being different; selecting a part of the name for inclusionin the name bubble for the face at the second zoom level having regardto the second maximum length attribute; and displaying the image withthe selected part of the name in the name bubble.